package com.example.tb.service.Impl;

import com.example.tb.dao.PageDao;
import com.example.tb.entity.BiOpeningRecord;
import com.example.tb.entity.PageBean;
import com.example.tb.service.PageService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class PageServiceImpl implements PageService {

    @Resource
    private PageDao pageDao;

    /**
     * 分页查询的方法
     */
    public PageBean<BiOpeningRecord> findByPage(int pageCode, int pageSize, Map<String, Object> conMap) {
        HashMap<String,Object> map = new HashMap<String,Object>();PageBean<BiOpeningRecord> pageBean = new PageBean<BiOpeningRecord>();

        //封装当前页
        pageBean.setPageCode(pageCode);
        pageBean.setPageSize(pageSize);

        // 封装总记录数（从数据库中查询）
        int totalCount = pageDao.selectCounts(conMap);
        pageBean.setTotalCount(totalCount);

        //封装总页数
        double num = Math.ceil((double) totalCount / pageSize);
        pageBean.setTotalPage((int) num);

        // 设置limit分页查询的起始位置和终止位置
        map.put("start",(pageCode - 1) * pageSize);
        map.put("size",pageBean.getPageSize());

        //封装每页显示的数据
        List<BiOpeningRecord> list = pageDao.findByPage(map);
        pageBean.setBeanList(list);

        // 分页查询功能也要封装显示起始页和终止页
        conMap.put("start",(pageCode - 1) * pageSize);
        conMap.put("size",pageBean.getPageSize());

        // 封装
        List<BiOpeningRecord> listCondition = pageDao.findCondition(conMap);
        pageBean.setBeanList(listCondition);
//        pageBean.setTotalCount(listCondition.size());
//        pageBean.setTotalPage((int) Math.ceil((double) listCondition.size() / pageSize));
        return pageBean;
    }
}
